package com.bdqn.oa.dao;

import com.bdqn.oa.entity.Announcement;
import java.sql.SQLException;
import java.util.Date;
import java.util.List;

/**
 * 公告Dao
 * 对公告表的增删查改的方法
 */
public interface AnnouncementDao {

    //公告查询方法
    /**
     *获取所有的公告
     * @return 返回公告List集合
     */
    public List<Announcement> listAnnouncementAll()throws SQLException;

    /**
     * 通过公告标题查询公告
     * @return
     */
    public Announcement getTitleQueryAnnouncement(String title)throws SQLException;

    /**
     * 通过大概内容查询有关的公告
     * @return
     */
    public List<Announcement> listCotentQueryAnnouncement(String content)throws SQLException;

    /**
     * 通过发起时间查询公告(只传年月日 yyyy-mm-dd)查询哪天的公告 也可以传具体的时间 看需求
     * @param
     * @return
     */
    public List<Announcement> listDateTimeQueryAnnouncement(String time)throws SQLException;

    /**
     * 通过发起人的姓名查询公告
     *
     * @return
     */
    public List<Announcement> listByEmployeenameQueryAnnouncement(String name)throws SQLException;

    //公告修改方法

    /**
     *   修改公告标题、内容、发起人姓名 、发布时间  只改一个调用该方法只给公告类赋值需要修改的第一个参数是公告的ID 第二个是要修改的标题 内容 姓名或者发布时间
     *   标题内容发起人
     * @param announcement
     * @return
     * @throws SQLException
     */
    public int updateAnnouncement(Announcement announcement)throws SQLException;

    /**
     * 通过公告id删除公告
     * @param id
     * @return
     */
    public int deleteAnnouncement(Integer id) throws SQLException;

    /**
     * 通过公告的ID数组批量删除公告
     * @param id
     * @return
     */
    public int[] deleteAnnouncement(Integer[] id) throws SQLException;

    /**
     * 新增公告
     * Announcement类除了对ID不赋值 其他的属性都要赋值
     * @param announcement
     * @return
     * @throws SQLException
     */
    public int insertAnnouncement(Announcement announcement) throws SQLException;
}
